#include"ShareMemory.hpp"
using namespace std;
int main()
{
	//1.创建key
        key_t k=::ftok(gpath.c_str(),gprojid);
        if(k<0)
        {
                cerr<<"key值创建失败"<<endl;
        }
	cout<<ToHex(k)<<" "<<endl;
	//2.创建共享内存 && 获取
	//注意：共享内存也是有权限的，linux下一切皆是文件！
	int shm = shmget(k,gshmsize,IPC_CREAT |IPC_EXCL| gmode);
	if(shm<0)
	{
		cerr<<"shmget error"<<endl;
		return 2;
	}
	cout<<"shmid: "<<shm<<endl;
        
	
	sleep(5);
	//3.共享内存挂接到自己的地址空间中
	void * ret=shmat(shm,nullptr,0);
	cout<<"挂接成功 ret:"<<(long long int)ret<<endl;
	sleep(5);
	//去关联
	::shmdt(ret);
	sleep(5);

	//.删除共享内存
	shmctl(shm,IPC_RMID,nullptr);
	sleep(5);
	cout<<"删除共享内存"<<endl;
	return 0;
}

